there is no need in this abstract class