constraints and interface builder is the worst part of this process i think