cleanup interface and add options