code polishing #17 & exception handling #19