made initialize abstract