Merge pull request #27 from kariminf/master

More abstraction