basic Data class. extend this