added solution from ch03 and test feature