Initial implementation

Fix #56