uses a custom dataitem