better error handling
clean tests + add async dev dependency