add push, clean up