Re-implemented as class
Add build target