better structure for future code