implemented dependencies and data structure