#23 Fixed #20 Implemented