different method types
allocate methods on init