removed Accept & Return interfaces and instanceof usage