Separate library from implementation