Initial Commit
fraction use separate interface and implementation