first iteration with basic features