Refactor to be synchronous for the sake of sanity

This package now needs to be run in a Worker so that it can be
synchronous. Assets will be handled by a separate package that can
create and communicate with a Worker that uses this package.
0.3.0