for ITMO_OOP