Add Push tests. Refactor Push Class.