Have been reading the whole day. Added contract class and confirmed that you can work with polymorph classes inside the controller