Completed functions except for the extra feature