rest and cons implemented