Rethinked the interface