I have a problem with adding surfaces
The best way to do it is to give your object a Subdivision Surface modifier. As it will round the angles that you want to keep sharp, you'll have to add some edge loops close to these angles.
To make things easier you must try to keep a good edge flow. This site (topologyguides) gives some good tricks but in my opinion the more you'll try the more you'll succeed.
Here is a quick example of what you could do:
Before:

After: