Adding all funcionality