#38 Should be done, needs proper testing