Starting from the scratch with a top down approach