implement basic logic
minor update