? implementing new init
 * Push