adding support code for push and more tests