moved data interface to separate class