initial implementation for step 2