finished basic feature functions