interfaces are now abstract classes