implemented segments