initial working piece
initial working piece with some modifications