updated for own needs