started rewrite
need to get asio working :/