improved and colorful
push without pull first :(