reduce dependency on console