add and improve testing