clean up
tiny refacotr
export IsEmpty
fix push
wip