fixed stuff + proper testing