Coalesced AbstractSelection and ISelection

- Removed there excess methods.
- Tried to get rid of repeated code blocks