dokoncena implementace