remove std::vector dependency, add const on some methods