major update => align with design