initial scheduler implementation