added abstracty