very close to classes working as expected