more features; this breaks the example and i will fix it later