Added interfaces, divided tests