add options for weight functions
unstable refactoring
add skeletons of heuristic and solution classes