clean code - first version