cleanup and add other features