added the optional features