Make the whole thing to a library :P