refactored
added step method
added samples