doing some test and polishing the interfaces