implementation of aaaall the things:)