refactor data classes