fixed stuff, + proper testing