basic sub_push functionality