first part of answer is omgwtfhowwtf