Initial commit
added IFunction interface
IFunction refactored to AFuction abstract class due to java language limitations.
Added config file.
Added separation algorithm