improve push(), add solutions to pro.1 and pro.2