Gearpump resource scheduler

extract scheduler implementation and abstract resource respresentation
Please chanage this to immutable