implement autolayout framework