First 5 steps implemented