Breaking up project into multiple files

@Scarygami maybe throw some unit tests in and this package could be deployed to pub.dartlang.org, let me know if you need any advice or help on it.