add push module and reconstruct with autolayout